javascript - 节点类型错误:承诺解析器#不是函数
问题描述
我在第一次拒绝时尝试使用的承诺出现类型错误,但据我所知,它看起来像我找到的示例。我究竟做错了什么?
var resolve, reject;
exports.handler = (event, context, callback) =>
{
//var filePromise = new Promise(ProcessFile(resolve, reject));
var filePromise = new Promise(function ProcessFile()
{
console.log("Processing file");
return new Promise((resolve, reject) => {
var array;
if(array.length <0)
{
resolve("We have stuff in the array, looks promising");
}
else
{
reject("Something went wrong populating the array");
}
});
});
filePromise.then(CheckHeaders());
function CheckHeaders()
{
return new Promise((resolve, reject) =>
{
console.log("Checking headers");
reject("Unauthorised");
}); //close promise
} //close function
};
解决方案
你只需要一个承诺。
var filePromise = new Promise(function(resolve, reject) {
console.log("Processing file");
var array = [1];
if (array.length > 0) {
resolve("We have stuff in the array, looks promising");
} else {
reject("Something went wrong populating the array");
}
});
function CheckHeaders() {
return new Promise((resolve, reject) => {
console.log("Checking headers");
reject("Unauthorised");
}); //close promise
}
filePromise
.then(res => {
console.log(res)
CheckHeaders()
.then(res2 => console.log(res2))
}).catch(err => console.warn(err));
正如@Bergi 指出的那样,最好只有一个整体承诺。
var filePromise = new Promise(function(resolve, reject) {
console.log("Processing file");
var array = [1];
if (array.length > 0) {
resolve("We have stuff in the array, looks promising");
} else {
reject("Something went wrong populating the array");
}
//here check headers
reject("Unauthorised");
});
filePromise
.then(res => {
console.log(res)
}).catch(err => console.warn(err));
推荐阅读
- c# - ScriptService 执行吃内存
- git - 更改分支后,我从中丢失了代码
- html - 如何从列表中的每个项目中获取真实图像值并将其订阅到另一个列表?
- arrays - Powershell:如何使用数组或哈希表作为内联查找
- typescript - “elementfinder”类型的参数不能分配给“boolean”类型的参数
- django - 尝试访问 api 时,Django_hosts 集成会产生“NoReverseMatch at /en/api/”
- python - 当脚本在多处理工作人员中运行异步事件循环时,通过子进程运行脚本会挂起
- javascript - .findOne 函数,试图有多个参数
- python - 无法导入 Python 模块
- postgresql - 如何在 Windows 上使用 pg_squeeze