Вы можете сделать это со списком обещаний, должно быть достаточно просто сделать:
const request = require('request')
const urlList = ["https://www.google.com", "https://www.amazon.com"];
function getStatus(url) {
return new Promise((resolve, reject) => {
request(url, function(error, response, body) {
resolve({site: url, status: (!error && response.statusCode == 200) ? "OK": "Down: " + error.message});
});
})
}
let promiseList = urlList.map(url => getStatus(url));
Promise.all(promiseList).then(resultList => {
resultList.forEach(result => console.log("Result: ", result));
});
Вы также можете использовать библиотеку request-обещание-native для более приятного API:
[111 ]Документация make's GNU предоставляет хорошее решение.
Абсолютно. g++ -MM <your file>
генерирует совместимый список GMake зависимостей. Я использую что-то вроде этого:
# Add .d to Make's recognized suffixes.
SUFFIXES += .d
#We don't need to clean up when we're making these targets
NODEPS:=clean tags svn
#Find all the C++ files in the src/ directory
SOURCES:=$(shell find src/ -name "*.cpp")
#These are the dependency files, which make will clean up after it creates them
DEPFILES:=$(patsubst %.cpp,%.d,$(SOURCES))
#Don't create dependencies when we're cleaning, for instance
ifeq (0, $(words $(findstring $(MAKECMDGOALS), $(NODEPS))))
#Chances are, these files don't exist. GMake will create them and
#clean up automatically afterwards
-include $(DEPFILES)
endif
#This is the rule for creating the dependency files
src/%.d: src/%.cpp
$(CXX) $(CXXFLAGS) -MM -MT '$(patsubst src/%.cpp,obj/%.o,$<)' $< -MF $@
#This rule does the compilation
obj/%.o: src/%.cpp src/%.d src/%.h
@$(MKDIR) $(dir $@)
$(CXX) $(CXXFLAGS) -o $@ -c $<
Примечание: $(CXX)
/gcc
команде нужно предшествовать с твердой вкладкой
То, что это сделает, автоматически генерируют зависимости для каждого файла, который изменился и компилирует их согласно любому правилу, которое Вы имеете в распоряжении. Это позволяет мне просто выводить новые файлы в src/
каталогу, и скомпилировали их автоматически, зависимости и так далее.