小程序
小游戏
企业微信
微信支付
扫描小程序码分享
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你好,这代码并没有做到递归,且只有满足resolve判断条件的getBuilds函数Promise实例状态为fulfilled。其他Promise实例的状态均为pending (包含getTag中的)。
这里有个示例供你参考下:
let i = 1; function request() { return new Promise((resolve, reject) => { setTimeout(() => { i += 1; resolve(i); }, 1000); }); } function recursionFetch() { return new Promise((resolve, reject) => { request() .then((res) => { // 满足条件 if (res === 10) { return resolve({ done: true, value: res }); } else { // 不满足条件 return resolve({ done: false, value: res }); } }) .catch((err) => { reject(err); }); }) .then((res) => { // 满足条件,返回 if (res.done) { return Promise.resolve(res.value); } else { // 不满足条件,进入递归 return recursionFetch(); } }) .catch((err) => { return Promise.reject(err); }); } var p1 = recursionFetch(); p1.then((res) => { console.log("res::", res); }).catch((err) => console.log("err:", err));
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
promise没有进行resolve,每次都新建了一个promise
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
你好,这代码并没有做到递归,且只有满足resolve判断条件的getBuilds函数Promise实例状态为fulfilled。其他Promise实例的状态均为pending (包含getTag中的)。
这里有个示例供你参考下:
let i = 1; function request() { return new Promise((resolve, reject) => { setTimeout(() => { i += 1; resolve(i); }, 1000); }); } function recursionFetch() { return new Promise((resolve, reject) => { request() .then((res) => { // 满足条件 if (res === 10) { return resolve({ done: true, value: res }); } else { // 不满足条件 return resolve({ done: false, value: res }); } }) .catch((err) => { reject(err); }); }) .then((res) => { // 满足条件,返回 if (res.done) { return Promise.resolve(res.value); } else { // 不满足条件,进入递归 return recursionFetch(); } }) .catch((err) => { return Promise.reject(err); }); } var p1 = recursionFetch(); p1.then((res) => { console.log("res::", res); }).catch((err) => console.log("err:", err));
promise没有进行resolve,每次都新建了一个promise