我很难记住如何使用 Node.js 进行方法链接。 这是一些示例代码,其中包含我无法轻松提取底层逻辑的注释。由于对所提供的代码的反馈与最初提供的内容不够适用,因此已对此进行了编辑添加。
const promise1 = new Promise((resolve, reject) => {
for (const entry of Object.keys(data)) {
// doing actual async things
}
resolve('Success!');
});
promise1.then((value) => {
console.log(value);
// Expected output: "Success!"
});
但是当我尝试将其转换为匿名函数时,我得到了
Error: (intermediate value).then is not a function
。我已经尝试过async
并改变了我的包围,但我似乎无法再回忆起如何设置它。
(
//async
(resolve, reject) => {
for (const entry of Object.keys(data)) {
// doing actual async things
}
resolve('Success!');
}).then((value) => {
console.log(value);
// Expected output: "Success!"
});
如何进行匿名方法链?
您需要返回一个 Promise 才能使其可链式。 有些函数自己完成此操作,例如 fetch()。
不匿名:
new Promise((resolve, reject) => resolve('Promise resolved'))
.then((res) => {
console.info(res);
return res;
})
.then((res) => res + ' 1')
.then((res) => {
console.info(res);
return res;
})
.then((res) => res + ' 2')
.then((res) => {
console.info(res);
return res;
})
.then((res) => res + ' 3')
.then((res) => {
console.info(res);
return res;
});
匿名者:
(new Promise((resolve) => resolve('One')))
.then(res => console.info(res));