Как использовать AngularJS $ q отложенных обещаний для возврата данных из асинхронной функции?

Как использовать AngularJS $ q отложенных обещаний вернуть данные из асинхронной функции?

У меня возникли проблемы с реализацией AngularJS $ q для получения данных из асинхронной функции и использования их во внешней области видимости. По сути, я хочу, чтобы последняя строка работала в приведенном ниже коде. Я видел несколько примеров, но, похоже, не могу обернуться вокруг реализации AngularJS $ q.

 var app = angular.module("myShoppingList", []); app.controller("myCtrl", function ($scope, $q) { const Papa = require('papaparse'); //I know these won't work, just added to give context const AWS = require('aws-sdk') AWS.config.update({ //keys go here }) const s3 = new AWS.S3() /* actual parameters should go here */ const params = { Bucket: "test-bucket-2019", Key: "dummy.csv" }; const parseOptions = { header: true, dynamicTyping: true /* will assume numbers are actually numbers, yada yada */ } let deferred = this.$q.defer(); //how to use this??? function getS3Data() { s3.getObject(params, function (err, data) { if (err) console.log(err, err.stack); else { const csv = data.Body.toString('utf-8'); const headers = 'id,start,end,count'; const parsed = Papa.parse(headers   'n'   csv, parseOptions); var parsedData = parsed.data; console.log(parsedData); //this works } return parsedData; }) } console.log(parsedData) //how to make this work }); 
Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector