"A promise was created in a handler but was not returned from it"
"A promise was created in a handler but was not returned from it"
当用户单击按钮 (#lfdsubmit) 时,它会调用应该 return 承诺的函数 (LFD_SearchContainer())。但是错误发生在
LFD_SearchContainer('EISU1870725')
.then(container => {
ST2.db2(container);
})
怎么了?
代码:(不要完全相信注释掉的部分会指导您完成这段代码——我忘记更新其中的一些)
函数 LFDTrack () {
function LFD_SearchContainer (requestedContainer) {
return new Promise((resolve, reject) => {
let lfd_scanparams = { TableName: 'lfd_table1' }
db.scan(lfd_scanparams, (err, containers) => {
if (err) {
reject(err);
} else {
containers = containers.Items;
let requestedContainers = []; // different variable than arg
let containerObject; // this will be the resolved object
// this will return the object of the searched container
let findIt = _.forEach(containers, container => {
if (container.container === requestedContainer) {
containerObject = container;
}
});
containerObject = findIt[0];
//console.log(findIt[0]);
resolve(containerObject.container);
}
});
});
}
$(function() {
$("#lfdsubmit").click(function (e) {
e.preventDefault();
let lsd_modaltitle = $("#lfdmodaltitle");
let lsd_modalcontent = $("#lfdmodalcontent");
LFD_SearchContainer('EISU1870725')
.then(container => {
ST2.db2(container); // will send the object
})
.catch(error => {
console.log(error);
});
});
});
}
如果 ST2.db2(container);
returns 一个承诺,您需要将该行更改为
return ST2.db2(container);
如果没有,你可以把return null;
放在后面,像这样:
ST2.db2(container);
return null;
由于您没有提供 ST2
的定义,我不知道 db2
方法 returns 是否是一个承诺。 :)
错误由bluebird作者解释here。
当用户单击按钮 (#lfdsubmit) 时,它会调用应该 return 承诺的函数 (LFD_SearchContainer())。但是错误发生在
LFD_SearchContainer('EISU1870725')
.then(container => {
ST2.db2(container);
})
怎么了? 代码:(不要完全相信注释掉的部分会指导您完成这段代码——我忘记更新其中的一些)
函数 LFDTrack () {
function LFD_SearchContainer (requestedContainer) {
return new Promise((resolve, reject) => {
let lfd_scanparams = { TableName: 'lfd_table1' }
db.scan(lfd_scanparams, (err, containers) => {
if (err) {
reject(err);
} else {
containers = containers.Items;
let requestedContainers = []; // different variable than arg
let containerObject; // this will be the resolved object
// this will return the object of the searched container
let findIt = _.forEach(containers, container => {
if (container.container === requestedContainer) {
containerObject = container;
}
});
containerObject = findIt[0];
//console.log(findIt[0]);
resolve(containerObject.container);
}
});
});
}
$(function() {
$("#lfdsubmit").click(function (e) {
e.preventDefault();
let lsd_modaltitle = $("#lfdmodaltitle");
let lsd_modalcontent = $("#lfdmodalcontent");
LFD_SearchContainer('EISU1870725')
.then(container => {
ST2.db2(container); // will send the object
})
.catch(error => {
console.log(error);
});
});
});
}
如果 ST2.db2(container);
returns 一个承诺,您需要将该行更改为
return ST2.db2(container);
如果没有,你可以把return null;
放在后面,像这样:
ST2.db2(container);
return null;
由于您没有提供 ST2
的定义,我不知道 db2
方法 returns 是否是一个承诺。 :)
错误由bluebird作者解释here。