Ich habe diese Funktion in einer externen Datei js:Rückgabewert von Callback-Funktion in Reaktion
export function getCalendarEvents() {
gapi.client.load('calendar', 'v3',()=> { // load the calendar api (version 3)
var request = gapi.client.calendar.events.list({
'calendarId': 'primary', // calendar ID
'maxResults': 20, // show max of 20 events
'singleEvents': true, // split recurring events into individual events
'timeMin': (new Date()).toISOString(),
'orderBy': 'startTime' // order events by their start time
});
// handle the response from our api call
request.execute((resp) => {
for (var i = 0; i < resp.items.length; i++) { // loop through events and write them out to a list
console.log(resp.items[i].summary + ' ' +resp.items[i].start.dateTime);
};
});
});
}
und ich brauche "resp.items" Wert in meinem eingeben js-Datei zu verwenden:
import {getCalendarEvents} from './GoogleCalendarEvents';
componentWillMount(){
var myitems = getCalendarEvents(); //my resp.items
}
Wie kann ich das tun? Ich weiß, dass es eine Menge Antwort gibt, aber ich möchte das asynchrone Muster in meinem Beispiel verstehen.
Mögliches Duplikat [? Wie kann ich die Antwort von einem asynchronen Aufruf zurückkehren] (https://stackoverflow.com/questions/14220321/how-do -i-return-the-response-from-async-call) –
Übergeben Sie eine Callback-Methode in 'getCalendarEvents' und rufen Sie diese von' getCalendarEvents' ab, sobald Sie die Antwort erhalten. –