这是我的代码。
function m1() {
return new Promise(function(resolve, reject) {
var files = $('#aws-upload-files')[0].files;
if (files.length > 0) {
for (var i = 0; i < files.length; i++) {
loadFile(files[i], $('#filecategory' + i + ' option:selected').text());
}
}
})
}
function submitFileUpload() {
$('#aws-upload-submit').click(function() {
m1().then(function(result) {
console.log('~~~ success here ');
window.location = 'https://example.com/';
})
.catch(function(error) {
console.log('Error');
})
})
}
$(function() {
submitFileUpload();
})
单击按钮“#aws-upload-submit
”时,将调用函数 m1()
。
函数m1()
返回一个promise。
在 .then()
中,我检查 Promise 是否返回成功,如果成功,我将浏览器重定向到 https://example.com
在我的例子中,当单击按钮时,m1()
被调用并且该函数成功运行,但没有创建任何 Promise 或 .then()
没有创建完全在工作。
即使 m1()
按预期工作,我也没有看到任何 console.log 指出 “~~~ 这里成功
”。
谁能告诉我我的 promise 有什么问题吗?
最佳答案
您需要解决 promise 或拒绝它,因此您必须执行这样的代码
阅读:Promise
return new Promise(function(resolve, reject) {
//code
resolve();
}
<小时/>
function m1() {
return new Promise(function(resolve, reject) {
var files = $('#aws-upload-files')[0].files;
if (files.length > 0) {
for (var i = 0; i < files.length; i++) {
loadFile(files[i], $('#filecategory' + i + ' option:selected').text());
}
resolve();
} else {
reject();
}
})
}
m1().then(
() => console.log("Task Complete!"),
() => console.log("Task Errored!"),
);
关于JavaScript : promise issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50147690/