Это мое первое приложение, использующее AWS API-шлюз, и я смог получить данные, когда функция была вызвана в componentDidMount, теперь я вызываю такой модуль из моего класса компонента
componentDidMount (){
// debugger
this.setState({apiData: apiCall(this.state.testSearch) })
this.updateAPIdata()
}
и apiCallэто функция в method.js
const apiCall = function(searchInput) {
const searchTerm = searchInput
var apigClientFactory = require('aws-api-gateway-client').default;
const config = {
apiKey: 'xxxxxx',
invokeUrl:'https://xxxx.execute-api.us-east-2.amazonaws.com'
}
var apigClient = apigClientFactory.newClient(config);
var params = {
//This is where any header, path, or querystring request params go. The key is the parameter named as defined in the API
// userId: '1234',
search_keyword: 'Ambassador'
};
// Template syntax follows url-template https://www.npmjs.com/package/url-template
var pathTemplate = '/beta/testDB'
var method = 'GET';
var additionalParams = {
//If there are any unmodeled query parameters or headers that need to be sent with the request you can add them here
headers: {
},
queryParams: {
search_keyword: 'Ambassador'
}
}
debugger
apigClient.invokeApi(params, pathTemplate, method, additionalParams)
.then(function(result)
{
//This is where you would put a success callback
return JSON.parse(result.data)
}).catch( function(result){
//This is where you would put an error callback
})
}
, когда я отлаживаю код, все правильные переменные передаются в apigClient.invokeApi, но он никогда не переходит к функции then, просто переходит к последнему закрытию} на apiCallфункция.Это неожиданно, так как раньше он отлаживал следующее, как тогда (функция (результат).
Я вызываю функцию неправильно или какую-то другую ошибку новичка? Этот код работал, когда он находился в том же файле .js, что иcomponentDidMount.