javascript - 取消嵌套 JavaScript Firestore 函数
问题描述
如何重写此代码以使其不嵌套?我还需要访问在前面的函数调用中获得的值。
return docRef2.doc(`/users_stripe/${context.params.userID}`).get()
.then(snapshot => {
console.log("augu", snapshot);
return stripe.customers.createSource( jsonParser(snapshot._fieldsProto.id, "stringValue"),
{ source: jsonParser(snap._fieldsProto.token, "stringValue") },
function(err, card) {
console.log("listen people", card);
return docRef2.doc(`/users_stripe/${context.params.userID}/ptypes/ptypes`)
.set(card);
});
})
解决方案
我不确定你的代码在这里做什么。我试图编写一个伪/示例代码,可能会给你一个想法。 我的代码未检查,因此可能包含问题。
let fun1 = () => {
return new Promise((resolve, reject) => {
docRef2.doc('/route').get().then(snapshot => {
if( snapshot ) resolve(snapshot);
else reject(snapshot);
})
})
}
let fun2 = (snapshot) => {
return new Promies((resolve, reject)=>{
stripe.customers.createSource(jsonParser(snapshot._fieldsProto.id, "stringValue"),
{ source: jsonParser(snap._fieldsProto.token, "stringValue") },
function (err, card) {
if (err) reject(false);// or whatever you wanna return
else resolve(card);
});
})
}
async function fun(){
let res1 = await fun1(); // Should contain snapshot
let res2 = await fun2(res1); // Should contain card
return docRef2.doc(`/users_stripe/${context.params.userID}/ptypes/ptypes`)
.set(card);
}
推荐阅读
- reactjs - 使用和 react-hook-form 进行 React yup 验证,不同类型对象的数组取决于对象属性之一
- javascript - 如何滚动到 GSAP scrollTrigger 擦洗时间轴中的标签
- shiny - 显示超链接到闪亮::信息
- powershell - powershell:在文件中查找所有匹配模式的字符串
- java - LinearLayout 在小型设备中没有响应
- python - 如何修复 Conv2d TypeError issubclass() arg 2 必须是类或类的元组?
- jquery - 附加消息与以前的数据冲突
- javascript - 即时自动重置值
- android - 根据TextView的高度计算文本的大小
- angular - 离子存储值不显示,除非我重新加载页面