function* uploadPromise(formdatasArr) {
for (let index = 0; index < formdatasArr.length; index++) {
const formdata = formdatasArr[index];
yield uploadApi(formdata,index)
}
}
function uploadApi(formdata,index) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (false) {
reject(err);
} else {
resolve(index);
}
}, 1000);
});
}
function run() {
const {
done,
value
} = gen.next()
if (done) {
console.log("done", value);
} else {
value.then((index) => {
console.log(`上传文件第${index+1}个文件`);
run();
});
}
}
var gen = uploadPromise([1, 2, 3, 4, 5])
run()
function* g1() {
console.log("g1 start");
yield* [1, 2, 3];
return "foo";
}
var result, yieldResult;
function* g2() {
console.log("g2 start");
result = yield* g1();
yieldResult = yield "g5 yield";
return "g5 inner";
}
var iterator = g2();
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(result);
console.log(iterator.next());
console.log(yieldResult);