如何修改以下代码以避免嵌套Promises?
需要在Firestore中插入请求承诺的响应。
我还想知道当Firestore Promise解决后,如何将jsonresponse可用以将response.status发送给调用方应用程序。
const functions = require('firebase-functions');
const rp = require('request-promise')
var admin = require("firebase-admin");
var serviceaccount = require("./service_key.json");
admin.initializeApp({
credential: admin.credential.cert(serviceaccount),databaseURL: "https://melitest-5bc38.firebaseio.com"
});
let db = admin.firestore()
exports.customHttpRequest = functions.https.onRequest((request,response) => {
const url = 'https://jsonplaceholder.typicode.com/users'
var options = {
uri: url,method: "GET",json: true
};
rp(options).then((jsonresponse) => {
for(var i = 0 ; i < jsonresponse.length; i++){
var obj = jsonresponse[i]
var docid = obj.id
// Warning: Avoid nesting promises.eslint(promise/no-nesting)
db.collection("scrapeusertest").doc(String(docid)).set(obj).then(() =>{
console.log(`Data was upload to firestore and the response was: ${jsonresponse}`)
response.status(200).send(jsonresponse);
}).catch(error =>{
console.log(`Error uploading data Firebase: ${error}`)
});
}
return console.log("Data was send")
})
.catch((err) => {
console.log('Error:',err)
});
return null;
});